package com.dsw.idezjet.beans;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;

import com.dsw.idezjet.model.Usuario;
import com.dsw.idezjet.model.Usuarios;


@Named
@ConversationScoped
public class UsuarioBean implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@EJB
	private Usuarios users;
	
	@Inject
	private Conversation conversation;
	
	private Usuario usuario;

	public UsuarioBean() {
		this.usuario = new Usuario();
	}
	
	@PostConstruct
	public void postConstruct(){
		this.conversation.setTimeout(60000);
	}
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	public List<Usuario> getUsuarios(){
		return users.obterUsuarios();
	}
	
	public String cadastrarUsuario(){
		users.adicionarUsuario(this.usuario);
		return "listarUsuarios?faces-redirect=true";
	}
	
	public String editarUsuario(){
		users.editarUsuario(this.usuario);
		if ( ! conversation.isTransient() ){
			conversation.end();
		}
		return "listarUsuarios";
	}
	
	public String removerUsuario(Usuario usuario){
		users.removerUsuario(usuario);
		return "listarUsuarios";
	}
	
	public String prepararEdicao(Usuario usuarioAEditar){
		if ( conversation.isTransient() ){
			this.conversation.begin();
		}
		this.usuario = usuarioAEditar;
		return "editarUsuario?faces-redirect=true";
	}
	
	

}
